// Package console 命令行辅助方法
package console

import (
	"fmt"
	"os"

	"github.com/mgutz/ansi"
)

// Success 输出成功信息, 绿色
func Success(msg string) {
	colorOut(msg, "green")
}

// Error 输出错误信息, 红色
func Error(msg string) {
	colorOut(msg, "red")
}

// Warning 输出警告信息, 黄色
func Warning(msg string) {
	colorOut(msg, "yellow")
}

// Info 输出普通信息, 蓝色
func Info(msg string) {
	colorOut(msg, "blue")
}

// Exit 输出错误信息, 红色, 并退出程序
func Exit(msg string) {
	Error(msg)
	os.Exit(1)
}

// ExitIf 输出错误信息, 红色, 并退出程序
// 如果 err 不为 nil, 则输出错误信息, 并退出程序
func ExitIf(err error) {
	if err != nil {
		Exit(err.Error())
	}
}

func colorOut(msg, color string) {
	_, _ = fmt.Fprintln(os.Stdout, ansi.Color(msg, color))
}
